// go语言递归函数 - 递归，就是在运行的过程中调用自己。
package main

/**
 * 语法格式
 * func recursion() {
 *  recursion()
 * }

 * func main() {
 *  recursion()
 * }
 * 例子：求阶乘
 */
func t1(n uint64) (result uint64) {
	if n > 0 {
		result = n * t1(n - 1)
		return result
	}
	return 1
}

/**
 * 斐波那契数列
 */
func t2(n int) int {
	if n < 2 {
		return n
	}
	return t2(n - 2) + t2(n - 1)
}

func main() {
	t1(10)
	t2(10)
}